package aceim.app.preference;
import aceim.app.Constants;
import aceim.app.R;
import aceim.app.dataentity.Account;
import aceim.app.dataentity.AccountOptionKeys;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.support.v4.content.LocalBroadcastManager;
public class AccountOptions extends OptionsPage {
private final Account mAccount;
public AccountOptions(Account a) {
super(R.xml.account_preferences, a.getAccountId());
this.mAccount = a;
}
@Override
public Drawable getIcon(Context context) {
return context.getResources().getDrawable(android.R.drawable.ic_menu_preferences);
}
@Override
public String getTitle(Context context) {
return context.getString(R.string.options_for, mAccount.getSafeName());
}
@Override
void onPreferenceAttached(PreferenceScreen root, int xmlId) {
onPreferenceAttached(root, xmlId, AccountOptionKeys.values());
}
@Override
protected boolean onPreferenceChangeInternal(Preference p, Object newValue){
Intent i = new Intent();
i.putExtra(Constants.INTENT_EXTRA_SERVICE_ID, mAccount.getServiceId());
i.putExtra(Constants.INTENT_EXTRA_OPTION_VALUE, newValue.toString());
i.putExtra(Constants.INTENT_EXTRA_OPTION_KEY, (Parcelable)AccountOptionKeys.valueOf(p.getKey()));
i.setAction(Constants.INTENT_ACTION_OPTION);
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(i);
return true;
}
}